home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / gnu / oleo_src.lha / src / dld.pch < prev    next >
Text File  |  1992-07-27  |  4KB  |  143 lines

  1. *** dld.c.~1~    Mon Apr 15 17:56:07 1991
  2. --- dld.c    Mon Apr 15 18:12:35 1991
  3. ***************
  4. *** 184,189 ****
  5. --- 184,192 ----
  6.   /* Count the number of global symbols referenced and not defined.  */
  7.   int dld_undefined_sym_count = 0;
  8.   
  9. + /* Where to look for files to link */
  10. + char *dld_search_path = ":/usr/lib:/usr/local/lib";
  11.   /* internal format of relocation info entry. */
  12.   struct dld_reloc_info {
  13.       /* corresponding symbol table entry. */
  14. ***************
  15. *** 1436,1441 ****
  16. --- 1439,1445 ----
  17.       }
  18.   } /* perform_relocation */
  19.   
  20.   /* given a file name, create an appropriate file_entry for it */
  21.   static struct file_entry *
  22.   make_entry (filename)
  23. ***************
  24. *** 1449,1458 ****
  25.       (char *) _dld_malloc (strlen (filename) + 1);
  26.       strcpy (entry->local_sym_name, filename);
  27.       
  28. -     if (filename[0] != '/') {
  29. -     char name[MAXPATHLEN];
  30. -     entry->filename = concat (getwd(name), "/", filename);
  31. -     }
  32.       entry->chain = _dld_latest_entry;
  33.       entry->ref_count = 1;
  34.       return entry;
  35. --- 1453,1458 ----
  36. ***************
  37. *** 1900,1906 ****
  38.       return dld_errno;
  39.       }
  40.       
  41. !     _dld_latest_entry = make_entry (object_file);
  42.   
  43.       desc = file_open (_dld_latest_entry);
  44.       
  45. --- 1900,1947 ----
  46.       return dld_errno;
  47.       }
  48.       
  49. !     if (object_file[0] != '/') {
  50. !     char name[MAXPATHLEN];
  51. !     char *tname;
  52. !     if(dld_search_path && *dld_search_path) {
  53. !         char *path,*path_end;
  54. !         int len;
  55. !         int d;
  56. !         path=path_end=dld_search_path;
  57. !         for(;;) {
  58. !             path_end=index(path,':');
  59. !             if(!path_end)
  60. !                 len=strlen(path);
  61. !             else
  62. !                 len=path_end-path;
  63. !             if(len) {
  64. !                 strncpy(name,path,len);
  65. !                 name[len]='\0';
  66. !             } else
  67. !                 getwd(name);
  68. !             tname=concat(name,"/",object_file);
  69. !             d=open(tname,0);
  70. !             if(d>=0) {
  71. !                 close(d);
  72. !                 break;
  73. !             } else
  74. !                 free(tname);
  75. !             if(!path_end) {
  76. !                 tname = concat (getwd(name), "/", object_file);
  77. !                 break;
  78. !             }
  79. !             path=path_end+1;
  80. !         }
  81. !     } else
  82. !         tname = concat (getwd(name), "/", object_file);
  83. !     _dld_latest_entry = make_entry (tname);
  84. !     free(tname);
  85. !     } else
  86. !     _dld_latest_entry = make_entry (object_file);
  87.   
  88.       desc = file_open (_dld_latest_entry);
  89.       
  90. *** error.c.~1~    Fri Jan 18 01:44:24 1991
  91. --- error.c    Fri Jan 18 02:20:12 1991
  92. ***************
  93. *** 20,26 ****
  94.   
  95.   #include "defs.h"
  96.   
  97. ! static char *errlst[] = {
  98.       "Error 0",
  99.       "cannot open file",            /* 1 DLD_ENOFILE */
  100.       "bad magic number",            /* 2 DLD_EBADMAGIC */
  101. --- 20,27 ----
  102.   
  103.   #include "defs.h"
  104.   
  105. ! /* JF: Modified to be more like the standard system perror() */
  106. ! const char *dld_errlst[] = {
  107.       "Error 0",
  108.       "cannot open file",            /* 1 DLD_ENOFILE */
  109.       "bad magic number",            /* 2 DLD_EBADMAGIC */
  110. ***************
  111. *** 40,45 ****
  112. --- 41,47 ----
  113.       "undefined symbol"            /* 16 DLD_EUNDEFSYM */
  114.       };
  115.   
  116. + const int dld_nerr = sizeof(dld_errlst)/sizeof(char *);
  117.   
  118.   /* Prints out the given string and the error message corresponding to
  119.      dld_errno to the stderr. */
  120. ***************
  121. *** 50,56 ****
  122.       if (str)
  123.       fprintf (stderr, "%s: ", str);
  124.       
  125. !     if (dld_errno < 1 || dld_errno > sizeof (errlst)/sizeof (char *))
  126. !     fprintf (stderr, "Unknown error.\n");
  127. !     else fprintf (stderr, "%s.\n", errlst[dld_errno]);
  128.   } /* dld_perror */
  129. --- 52,58 ----
  130.       if (str)
  131.       fprintf (stderr, "%s: ", str);
  132.       
  133. !     if (dld_errno < 1 || dld_errno > dld_nerr)
  134. !     fprintf (stderr, "Unknown error(%d).\n",dld_errno);
  135. !     else fprintf (stderr, "%s.\n", dld_errlst[dld_errno]);
  136.   } /* dld_perror */
  137.